Program Transformation to Identify List-Based Parallel Skeletons
نویسندگان
چکیده
Algorithmic skeletons are used as building-blocks to ease the task of parallel programming by abstracting the details of parallel implementation from the developer. Most existing libraries provide implementations of skeletons that are defined over flat data types such as lists or arrays. However, skeleton-based parallel programming is still very challenging as it requires intricate analysis of the underlying algorithm and often uses inefficient intermediate data structures. Further, the algorithmic structure of a given program may not match those of list-based skeletons. In this paper, we present a method to automatically transform any given program to one that is defined over a list and is more likely to contain instances of list-based skeletons. This facilitates the parallel execution of a transformed program using existing implementations of list-based parallel skeletons. Further, by using an existing transformation called distillation in conjunction with our method, we produce transformed programs that contain fewer inefficient intermediate data structures.
منابع مشابه
A Transformational Approach which Combines Size Inference and Program Optimization Position Paper
We propose a calculus for the analysis of list lengths in functional programs. In contrast to common type-based approaches, it is based on the syntactical structure of the program. To our knowledge, no other approach provides such a detailed analysis of nested lists. The analysis of lists is preceded by a program transformation which makes sizes explicit as program values and eliminates the cha...
متن کاملParallelization with Tree Skeletons
Trees are useful data structures, but to design efficient parallel programs over trees is known to be more difficult than to do over lists. Although several important tree skeletons have been proposed to simplify parallel programming on trees, few studies have been reported on how to systematically use them in solving practical problems; it is neither clear how to make a good combination of ske...
متن کاملMATHEMATICAL ENGINEERING TECHNICAL REPORTS Parallelization with Tree Skeletons
Trees are useful data structures, but to design efficient parallel programs over trees is known to be more difficult than to do over lists. Although several important tree skeletons have been proposed to simplify parallel programming on trees, few studies have been reported on how to systematically use them in solving practical problems; it is neither clear how to make a good combination of ske...
متن کاملAn Analytical Method Forparallelization of Recursive
Received (received date) Revised (revised date) Communicated by Christian Lengauer ABSTRACT Programming with parallel skeletons is an attractive framework because it encourages programmers to develop eecient and portable parallel programs. However, extracting parallelism from sequential speciications and constructing eecient parallel programs using the skeletons are still diicult tasks. In this...
متن کاملRewriting Skeleton Programs: How to Evaluate the Data-parallel Stream-parallel Tradeoo
Some skeleton based parallel programming models allow the programmer to use both data and stream parallel skeletons within the same program. It is known that particular skeleton nestings can be formally rewritten into diierent nestings that preserve the functional semantics. Indeed, the kind and possibly the amount of parallelism usefully exploitable may change while rewriting takes place. Here...
متن کامل